home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2007 December
/
PCWKCD1207B.iso
/
Windows marzen
/
Maxthon 2.0.4
/
mx_2.0.4.5799.exe
/
template
/
_shared
/
js
/
maxXmlListParser.js
< prev
Wrap
Text File
|
2007-09-20
|
3KB
|
144 lines
var maxXmlListParser={};
maxXmlListParser.error=null;
maxXmlListParser.xmlDOM=null;
maxXmlListParser.getXMLDOM=function(_1){
var _2;
try{
if(window.ActiveXObject){
_2=external.max_activex(max_security_id,"Microsoft.XMLDOM");
_2.async=false;
if(_1["namespace"]){
_2.setProperty("SelectionNamespaces",_1["namespace"]);
}
}else{
var ns=_1["namespace"]?_1["namespace"]:"";
_2=document.implementation.createDocument(ns,"",null);
}
}
catch(e){
maxXmlListParser.error="Create XMLDOM Failed :: ("+e.number+") "+e.description;
return null;
}
return _2;
};
maxXmlListParser.parseFile=function(_4,_5){
return maxXmlListParser.parse(_4,_5,true);
};
maxXmlListParser.parse=function(_6,_7,_8){
if(maxXmlListParser.load(_6,_7,_8)){
return maxXmlListParser.parseItems(maxXmlListParser.xmlDOM,_7);
}else{
return null;
}
};
maxXmlListParser.load=function(_9,_a,_b){
if(!_b){
_b=false;
}
if(!maxXmlListParser.xmlDOM){
maxXmlListParser.xmlDOM=maxXmlListParser.getXMLDOM(_a);
}
if(!maxXmlListParser.xmlDOM){
return false;
}
isOK=true;
if(_b){
maxXmlListParser.xmlDOM.async=false;
maxXmlListParser.xmlDOM.load(_9);
}else{
if(window.ActiveXObject){
maxXmlListParser.xmlDOM.loadXML(_9);
}else{
maxXmlListParser.xmlDOM=(new DOMParser()).parseFromString(_9,"text/xml");
}
}
if(window.ActiveXObject){
if(maxXmlListParser.xmlDOM.parseError.errorCode!=0){
isOK=false;
}
}else{
if(maxXmlListParser.xmlDOM.documentElement.tagName=="parsererror"){
isOK=false;
}
}
if(isOK){
return true;
}else{
maxXmlListParser.error="Parse Error :: ("+maxXmlListParser.xmlDOM.parseError.errorCode+") "+maxXmlListParser.xmlDOM.parseError.reason;
return false;
}
};
maxXmlListParser.selectNodes=function(_c,_d,_e){
if(window.ActiveXObject){
if(_e){
return _c.selectSingleNode(_d);
}else{
return _c.selectNodes(_d);
}
}else{
var _f=new XPathEvaluator();
var _10=_f.createNSResolver(_c.ownerDocument==null?_c.documentElement:_c.ownerDocument.documentElement);
var _11=_f.evaluate(_d,_c,_10,0,null);
var _12=[];
var obj;
while(obj=_11.iterateNext()){
if(_e){
return obj;
}else{
_12.push(obj);
}
}
if(_12.length==0){
return null;
}else{
return _12;
}
}
};
maxXmlListParser.parseItems=function(_14,_15){
var _16=[];
if(!maxXmlListParser.selectNodes(_14.documentElement,_15["validate"],true)){
return null;
}
var _17=maxXmlListParser.selectNodes(_14.documentElement,_15["items"]);
for(var i=0;i<_17.length;i++){
var _19=maxXmlListParser.parseSingleItem(_17[i],_15);
if(_19!={}){
_16.push(_19);
}
}
return _16;
};
maxXmlListParser.parseSingleItem=function(_1a,_1b){
var _1c=_1b["itemTemplate"]?$clone(_1b["itemTemplate"]):{};
for(var _1d in _1b["attributes"]){
var _1e=maxXmlListParser.selectNodes(_1a,_1b["attributes"][_1d],true);
if(_1e){
_1c[_1d]=_1e.nodeValue;
}
}
return _1c;
};
maxXmlListParser.updateItem=function(_1f){
if(maxXmlListParser.load(_1f["xml"],{},_1f["isFile"])){
maxXmlListParser.xmlDOM.setProperty("SelectionLanguage","XPath");
var _20=maxXmlListParser.xmlDOM.selectSingleNode(_1f["xpath"]);
if(_20){
_20.nodeValue=_1f["value"];
}
if(_1f["save"]&&_1f["isFile"]){
try{
maxXmlListParser.xmlDOM.save(_1f["xml"]);
}
catch(e){
alert(e.description);
}
}
return true;
}else{
alert(maxXmlListParser.error);
return false;
}
};